This paper introduces an extension to the object oriented programming paradigm.  

 

Terms:

 

Concern:  properties or areas of interest of a system 

 

Aspect Oriented techniques:

 

finds concerns and separates them out from other concerns, taking them out of the object structure.

 

1.  Specify aspects:  define joining points, figure out the parameterization and the extent to which aspects can be customized for a particular use.  Figure out dependence on OO programming systems.

 

2.  Static/Dynamic divides.

 

3.  Decoupling.  can the writer of the main code ignore the aspect's details or not.

 

4.  Global vs local functionality.

 

5.  Context: domain specific? unique? reusable? testability?

 

"Law of Demeter": objects should only have knowledge of closely related objects.

 

Separation of behavioral concerns from structural.

 

Critiques of Object Oriented techniques:

 

1.  finding commonality among classes and push them up in the inheritance tree.

 

see: aosd.net